Simplification of programming.

OK, so it seems that this unspecified LED display might be using a conventional 4-digit 7-segment type of display, sitting on top of 4 74HC595 serial-to-parallel shift registers. As such, it doesn't need continuous refreshing to keep the display illuminated.

I still can't find the library with the .dispFloat() method, but it seems that the .float_dot() method in the AlexGyver library might do the same thing. I have not downloaded the library to test, as I don't have this display.

This should work, without ever needing the timerOne library or using any interrupts...

#include <TM74HC595Display.h>
#include <OneWire.h>
#include <DallasTemperature.h>

int SCLK = 7;
int RCLK = 6;
int DIO = 5;
float temp1;
OneWire oneWire(4);
DallasTemperature sensors(&oneWire); //move this here - only needs to be done once in the lifetime of the program
TM74HC595Display disp(SCLK, RCLK, DIO);

void setup() {

}

void loop() {
  static float temp2; //make this static, so it remembers the value for the next iteration of the loop
  temperatura();
  if (temp1 != temp2) {
    temp2 = temp1;
    disp.dispFloat(temp2, 2);  //are you sure you didn't intend to write disp.float_dot(temp2, 2); here?
    disp.timerIsr(); //this seems to be the poorly-named function which actually outputs 4 characters to the display
  }
  
  //other code can go here, or maybe just a delay if you really only want to see the display change once every 10 seconds
}

void temperatura()
{
  sensors.requestTemperatures();
  temp1 = sensors.getTempCByIndex(0);
}